<?php

/**
 * Description of DbBedrijfsonderdeel
 * Db klasse van Beddrijfsonderdeel.
 * @author Nick Swartelé
 */

//require_once '../defs/constants.php';

require_once 'database.php';

class DbBedrijfsonderdeel extends Database {
    
    private $id = '';
    private $laag_id = '';
    private $beschrijving = '';
    private $leidinggevende_id = '';
    private $locatie = '';
    
    public function __construct($bedrijfs_onderdeel_id=''){
        
        if( $bedrijfs_onderdeel_id !== ''){
            // Pre load class
            
        }
        parent::__construct();
       
    }
    
/*     Save Functie
 *     Voegt een nieuw bedrijfsonderdeel toe aan de database.
 */
      public function save ($laag_id, $beschrijving, $leidinggevende_id, $locatie) {       
         
        if (
             
            !empty ($laag_id) && 
            !empty ($beschrijving) &&
            !empty ($leidinggevende_id)&&
            !empty ($locatie)
               
            ){
           
            $query = "INSERT INTO `cofely`.`bedrijfsonderdeel`(`laag_id`, `beschrijving`, `leidinggevende_id`, `locatie`)
                        VALUES (                        
                            '" . mysql_real_escape_string($laag_id) . "',
                            '" . mysql_real_escape_string($beschrijving) . "',
                            '" . mysql_real_escape_string($leidinggevende_id) . "',
                            '" . mysql_real_escape_string($locatie) . "'                      
                            )";
                     
            if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
            if (!$this->dbquery($query)){
 
               throw new Exception(DB_ERROR_NIETVERWERKT);
      
            }
            
            // Update Class Attributes
            $this->laag_id = $laag_id;
            $this->beschrijving = $beschrijving;
            $this->leidinggevende_id = $leidinggevende_id;
            $this->locatie = $locatie;
          
            return TRUE;
        }
        else {
          throw new Exception(DB_ERROR_INVOERFOUT);
        }
    }
 
    public function update ($id, $laag_id, $beschrijving, $leidinggevende_id, $locatie){
           
        if (!empty ($id) &&
            !empty ($beschrijving) &&
            !empty ($leidinggevende_id) &&
            !empty ($locatie)){
            
            $query = "UPDATE bedrijfsonderdeel
                        SET laag_id =                  '" . mysql_real_escape_string($laag_id) . "', 
                            beschrijving =               '" . mysql_real_escape_string($beschrijving) . "', 
                            leidinggevende_id =                 '" . mysql_real_escape_string($leidinggevende_id) . "', 
                            locatie =         '" . mysql_real_escape_string($locatie) . "'
                                
                        WHERE bedrijfsonderdeel . id ='" . mysql_real_escape_string($id) . "'";
       
                  if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
            
            if (!$this->dbquery($query)){
                    throw new Exception(DB_ERROR_NIETVERWERKT);
            }
        
            // Update Class Attributes
            $this->laag_id = $laag_id;
            $this->beschrijving = $beschrijving;
            $this->leidinggevende_id = $leidinggevende_id;
            $this->locatie = $locatie;
            
            return TRUE;
        }
        else {
             throw new Exception(DB_ERROR_INVOERFOUT);
        }
    }
    
         public function selectOne($bedrijfs_onderdeel_id){
             
             // Check ID on being number 
             
             $query = "SELECT * FROM `bedrijfsonderdeel` WHERE `id` = $bedrijfs_onderdeel_id";
             
             //var_dump( $query);

         if($this->dbquery($query)) {
            echo __FILE__.__LINE__." Gevonden items:". $this->dbNumRows()."<br />\n";
             // Controle of er iets gevonden is in de database
             if($this->dbNumRows() >= 1){
                 
                 
                       return $this->dbFetchAll(); 
                  
             }
            
             return FALSE;
                
                   
         } else {
             throw new Exception (DB_ERROR_COULDNOTSELECT);
         }
          

          if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
        
        $this->reset(); 
    }
    
    public function selectOverzicht($laag_id){
        
      
        
         if($this->dbquery("SELECT * FROM `bedrijfsonderdeel` WHERE `laag_id` = '$laag_id'  ")) {
            
             // Controle of er iets gevonden is in de database
             if($this->dbNumRows() >= 1){
                       return $this->dbFetchAll();  
                  
             } else {
                   echo "Geen onderdelen gevonden!";
                 return FALSE;
             }    
                   
         } else {
             throw new Exception (DB_ERROR_COULDNOTSELECT);
         }
          

          if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
        
        $this->reset();
        
    }
    
              public function delete($id) {          
  
        if (
             
            !empty ($id)

            ){
           
            $query = "DELETE FROM `cofely`.`bedrijfsonderdeel` WHERE `bedrijfsonderdeel`.`id` = '$id';";
                     
            if (DEBUG_LVL & DEBUG_LVL_QUERY)  echo __FILE__ . ' ' . __LINE__ .': ' .$query . '<br />';
            
            if (!$this->dbquery($query)){
 
               throw new Exception(DB_ERROR_NIETVERWERKT);
            }
            
            // Update Class Attributes
            $this->id = $id;      
            return TRUE;
        }
        else {
          throw new Exception(DB_ERROR_INVOERFOUT);
        }
    }
        
    /** 
     * De public Get functies halen de informatie "Id", "Laag_id",
     * "Beschrijving", "Leidinggevende_id", "Locatie" uit de tabel
     * "Bedrijfsonderdeel" zodat ze in een array geplaats kunnen
     * worden.
     * @return type
     */
        public function getId() {
        return $this->id;
        }
    
        /**
         * Geeft het huidige ID van de klasse terug
         *  
         * @return int ID van de laag in de organisatie 
         */
        public function setId($id) {
        $this->id = $id;
        }
        
        public function getLaag_id() {
        return $this->laag_id;
        }
        
        public function setLaag_id($laag_id) {
        $this->laag_id = $laag_id;
        }

        public function getBeschrijving() {
            return $this->beschrijving;
        }
        
        public function setBeschrijving($beschrijving) {
        $this->beschrijving = $beschrijving;
        }
        
        public function getLeidinggevende_id() {
            return $this->leidinggevende_id;
        }
        
        public function setLeidinggevende_id($leidinggevende_id) {
        $this->leidinggevende_id = $leidinggevende_id;
        }
        
        public function getLocatie() {
            return $this->locatie;
        }
        
        public function setLocatie($locatie) {
        $this->locatie = $locatie;
        }
}
?>